package com.freemalll.system.domain;

import java.util.Date;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.freemalll.common.core.annotation.Excel;
import com.freemalll.common.core.annotation.Excel.ColumnType;
import com.freemalll.common.core.web.domain.AuditEntity;

/**
 * 系统应用表 sys_application
 * 
 * @author freemalll
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_application")
public class SysApplication extends AuditEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Excel(name = "主键ID", cellType = ColumnType.STRING)
    private String id;

    /** 应用编码 登录可带应用code 返回相关应用资源 */
    @TableField("app_code")
    @Excel(name = "应用编码")
    @NotBlank(message = "应用编码不能为空")
    @Size(min = 0, max = 50, message = "应用编码不能超过50个字符")
    private String appCode;

    /** 应用名称 */
    @TableField("app_name")
    @Excel(name = "应用名称")
    @NotBlank(message = "应用名称不能为空")
    @Size(min = 0, max = 50, message = "应用名称不能超过50个字符")
    private String appName;

    /** 图标 */
    @TableField("icon")
    @Excel(name = "图标")
    @Size(min = 0, max = 500, message = "图标URL不能超过500个字符")
    private String icon;

    /** 跳转URL */
    @TableField("skip_url")
    @Excel(name = "跳转URL")
    @Size(min = 0, max = 1024, message = "跳转URL不能超过1024个字符")
    private String skipUrl;
}